\relax 
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax 
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand*\HyPL@Entry[1]{}
\HyPL@Entry{0<</S/D>>}
\@writefile{toc}{\contentsline {section}{\numberline {1}Chap1 introduction}{3}{section.1}}
\newlabel{sec:org5c7e3d8}{{1}{3}{Chap1 introduction}{section.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2}chap2 scanning}{3}{section.2}}
\newlabel{sec:org447eeee}{{2}{3}{chap2 scanning}{section.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Chap3 context-free grammars and parsing}{4}{section.3}}
\newlabel{sec:orgd85d981}{{3}{4}{Chap3 context-free grammars and parsing}{section.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}context-free grammars}{4}{subsection.3.1}}
\newlabel{sec:orgddd181d}{{3.1}{4}{context-free grammars}{subsection.3.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Parse tree and abstract syntax trees}{4}{subsection.3.2}}
\newlabel{sec:org119e65c}{{3.2}{4}{Parse tree and abstract syntax trees}{subsection.3.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}parse tree}{4}{subsubsection.3.2.1}}
\newlabel{sec:orgdb8e2f8}{{3.2.1}{4}{parse tree}{subsubsection.3.2.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}abstract symtax tree}{4}{subsubsection.3.2.2}}
\newlabel{sec:org924b930}{{3.2.2}{4}{abstract symtax tree}{subsubsection.3.2.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Ambiguity}{4}{subsection.3.3}}
\newlabel{sec:orgd8c94a2}{{3.3}{4}{Ambiguity}{subsection.3.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}ambiguity grammars}{4}{subsubsection.3.3.1}}
\newlabel{sec:org9115d18}{{3.3.1}{4}{ambiguity grammars}{subsubsection.3.3.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}precedence and associativity}{5}{subsubsection.3.3.2}}
\newlabel{sec:org023ef79}{{3.3.2}{5}{precedence and associativity}{subsubsection.3.3.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.3}the dangling else problem}{5}{subsubsection.3.3.3}}
\newlabel{sec:orgd83d0d4}{{3.3.3}{5}{the dangling else problem}{subsubsection.3.3.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.4}inessential ambiguity}{5}{subsubsection.3.3.4}}
\newlabel{sec:org8f80f04}{{3.3.4}{5}{inessential ambiguity}{subsubsection.3.3.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.5}extended notations: EBNF and syntax diagrams}{5}{subsubsection.3.3.5}}
\newlabel{sec:orgce9ee75}{{3.3.5}{5}{extended notations: EBNF and syntax diagrams}{subsubsection.3.3.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Formal properties of context-free language}{6}{subsection.3.4}}
\newlabel{sec:org8e4b1c9}{{3.4}{6}{Formal properties of context-free language}{subsection.3.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Chap4 top-down parsing}{6}{section.4}}
\newlabel{sec:org9210e15}{{4}{6}{Chap4 top-down parsing}{section.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Top-down parsing by recursive-descent}{6}{subsection.4.1}}
\newlabel{sec:org4af043b}{{4.1}{6}{Top-down parsing by recursive-descent}{subsection.4.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}LL(1) parsing}{6}{subsection.4.2}}
\newlabel{sec:orge39a342}{{4.2}{6}{LL(1) parsing}{subsection.4.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}LL(1) parsing table}{7}{subsubsection.4.2.1}}
\newlabel{sec:orgf6de9fe}{{4.2.1}{7}{LL(1) parsing table}{subsubsection.4.2.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}left recursion removal and left factoring}{7}{subsubsection.4.2.2}}
\newlabel{sec:org1b21d4b}{{4.2.2}{7}{left recursion removal and left factoring}{subsubsection.4.2.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Syntax tree construction in LL(1) parsing}{8}{subsubsection.4.2.3}}
\newlabel{sec:org4ed33b9}{{4.2.3}{8}{Syntax tree construction in LL(1) parsing}{subsubsection.4.2.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}First and follow sets}{8}{subsection.4.3}}
\newlabel{sec:org21822a4}{{4.3}{8}{First and follow sets}{subsection.4.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Error recovery in top-down parsers}{8}{subsection.4.4}}
\newlabel{sec:org26332f8}{{4.4}{8}{Error recovery in top-down parsers}{subsection.4.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5}Chap5 Bottom-up parsing}{8}{section.5}}
\newlabel{sec:org8ca7ac0}{{5}{8}{Chap5 Bottom-up parsing}{section.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Overview of bottom-up parsing}{8}{subsection.5.1}}
\newlabel{sec:orgdd58817}{{5.1}{8}{Overview of bottom-up parsing}{subsection.5.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Finite automata of LR(0) items and LR(0) parsing}{11}{subsection.5.2}}
\newlabel{sec:org6fe0ae0}{{5.2}{11}{Finite automata of LR(0) items and LR(0) parsing}{subsection.5.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}Finite automata of items}{11}{subsubsection.5.2.1}}
\newlabel{sec:org035fd03}{{5.2.1}{11}{Finite automata of items}{subsubsection.5.2.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}The LR(0) parsing algorithm}{12}{subsubsection.5.2.2}}
\newlabel{sec:org4748a59}{{5.2.2}{12}{The LR(0) parsing algorithm}{subsubsection.5.2.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}SLR(1) Parsing (simple LR(1))}{13}{subsection.5.3}}
\newlabel{sec:org5d76fb0}{{5.3}{13}{SLR(1) Parsing (simple LR(1))}{subsection.5.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}disambiguating rules for parsing conflicts}{14}{subsubsection.5.3.1}}
\newlabel{sec:org56fe75e}{{5.3.1}{14}{disambiguating rules for parsing conflicts}{subsubsection.5.3.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2}limits of SLR(1) parsing power}{14}{subsubsection.5.3.2}}
\newlabel{sec:orge0c5fe6}{{5.3.2}{14}{limits of SLR(1) parsing power}{subsubsection.5.3.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}General LR(1) and LALR(1) parsing}{14}{subsection.5.4}}
\newlabel{sec:orgd93ca88}{{5.4}{14}{General LR(1) and LALR(1) parsing}{subsection.5.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.1}Finite automata of LR(1) items}{14}{subsubsection.5.4.1}}
\newlabel{sec:org67b1534}{{5.4.1}{14}{Finite automata of LR(1) items}{subsubsection.5.4.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.2}The LR(1) parsing algorithm}{15}{subsubsection.5.4.2}}
\newlabel{sec:org0ef317f}{{5.4.2}{15}{The LR(1) parsing algorithm}{subsubsection.5.4.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.5}LALR(1) parsing}{15}{subsection.5.5}}
\newlabel{sec:org572ade3}{{5.5}{15}{LALR(1) parsing}{subsection.5.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.6}Error recovery in Bottom-up parsers}{15}{subsection.5.6}}
\newlabel{sec:org984491d}{{5.6}{15}{Error recovery in Bottom-up parsers}{subsection.5.6}{}}
\@writefile{toc}{\contentsline {section}{\numberline {6}chap6 semantics analysis}{16}{section.6}}
\newlabel{sec:org8d257a5}{{6}{16}{chap6 semantics analysis}{section.6}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Attributes and attribute grammars}{16}{subsection.6.1}}
\newlabel{sec:org1a58c37}{{6.1}{16}{Attributes and attribute grammars}{subsection.6.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.1}attribute grammars}{16}{subsubsection.6.1.1}}
\newlabel{sec:org651029e}{{6.1.1}{16}{attribute grammars}{subsubsection.6.1.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.2}simplifications and extensions to attribute grammars}{17}{subsubsection.6.1.2}}
\newlabel{sec:org57658fd}{{6.1.2}{17}{simplifications and extensions to attribute grammars}{subsubsection.6.1.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Algorithms for attribute computation}{17}{subsection.6.2}}
\newlabel{sec:org5e65499}{{6.2}{17}{Algorithms for attribute computation}{subsection.6.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.1}dependency graphs and evaluation order}{17}{subsubsection.6.2.1}}
\newlabel{sec:org91eed1d}{{6.2.1}{17}{dependency graphs and evaluation order}{subsubsection.6.2.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.2}synthesized and inherited attributes}{19}{subsubsection.6.2.2}}
\newlabel{sec:org9d7e5e8}{{6.2.2}{19}{synthesized and inherited attributes}{subsubsection.6.2.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.3}attributes as parameters and returned values}{19}{subsubsection.6.2.3}}
\newlabel{sec:org2c6e00f}{{6.2.3}{19}{attributes as parameters and returned values}{subsubsection.6.2.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.4}The use of external data structures to store attributes values}{19}{subsubsection.6.2.4}}
\newlabel{sec:orgd977cee}{{6.2.4}{19}{The use of external data structures to store attributes values}{subsubsection.6.2.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.5}The computation of attributes during parsing}{20}{subsubsection.6.2.5}}
\newlabel{sec:orge9df96c}{{6.2.5}{20}{The computation of attributes during parsing}{subsubsection.6.2.5}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.6}The dependence of attributes computation on the syntax}{21}{subsubsection.6.2.6}}
\newlabel{sec:org455710d}{{6.2.6}{21}{The dependence of attributes computation on the syntax}{subsubsection.6.2.6}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}The Symbol Table}{21}{subsection.6.3}}
\newlabel{sec:org15a33f7}{{6.3}{21}{The Symbol Table}{subsection.6.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.1}The structure of the symbol table}{21}{subsubsection.6.3.1}}
\newlabel{sec:orgdfe6253}{{6.3.1}{21}{The structure of the symbol table}{subsubsection.6.3.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.2}Declarations}{21}{subsubsection.6.3.2}}
\newlabel{sec:org386c90a}{{6.3.2}{21}{Declarations}{subsubsection.6.3.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.3}Scope rules and block structure}{22}{subsubsection.6.3.3}}
\newlabel{sec:orgd702406}{{6.3.3}{22}{Scope rules and block structure}{subsubsection.6.3.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.4}interaction of same-level declarations}{22}{subsubsection.6.3.4}}
\newlabel{sec:orgc31c840}{{6.3.4}{22}{interaction of same-level declarations}{subsubsection.6.3.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.5}an extended example of an attribute grammar using a symbol table}{22}{subsubsection.6.3.5}}
\newlabel{sec:org764be4f}{{6.3.5}{22}{an extended example of an attribute grammar using a symbol table}{subsubsection.6.3.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Data types and type checking}{24}{subsection.6.4}}
\newlabel{sec:org8f574f2}{{6.4}{24}{Data types and type checking}{subsection.6.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.1}type names, type declarations and recursive type}{24}{subsubsection.6.4.1}}
\newlabel{sec:orgdf13641}{{6.4.1}{24}{type names, type declarations and recursive type}{subsubsection.6.4.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.2}type equivalence}{24}{subsubsection.6.4.2}}
\newlabel{sec:org015c055}{{6.4.2}{24}{type equivalence}{subsubsection.6.4.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.3}type inference and type checking}{24}{subsubsection.6.4.3}}
\newlabel{sec:org9e3fcef}{{6.4.3}{24}{type inference and type checking}{subsubsection.6.4.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.4}additional topics in type checking}{24}{subsubsection.6.4.4}}
\newlabel{sec:orga04e2d4}{{6.4.4}{24}{additional topics in type checking}{subsubsection.6.4.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7}Chap7 runtime environments}{24}{section.7}}
\newlabel{sec:orgcebb9d9}{{7}{24}{Chap7 runtime environments}{section.7}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}memory organization during program execution}{24}{subsection.7.1}}
\newlabel{sec:orgd8c9ffd}{{7.1}{24}{memory organization during program execution}{subsection.7.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}fully static runtime environment}{25}{subsection.7.2}}
\newlabel{sec:org3cfcbf4}{{7.2}{25}{fully static runtime environment}{subsection.7.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.3}stack-based runtime environments}{26}{subsection.7.3}}
\newlabel{sec:org45de23e}{{7.3}{26}{stack-based runtime environments}{subsection.7.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.3.1}stack-based environments without local procedures}{26}{subsubsection.7.3.1}}
\newlabel{sec:org132c02a}{{7.3.1}{26}{stack-based environments without local procedures}{subsubsection.7.3.1}{}}
